summaryrefslogtreecommitdiff
path: root/app/[lng]/sales
diff options
context:
space:
mode:
Diffstat (limited to 'app/[lng]/sales')
-rw-r--r--app/[lng]/sales/(sales)/tech-contact-possible-items/page.tsx56
-rw-r--r--app/[lng]/sales/(sales)/tech-project-avl/page.tsx11
-rw-r--r--app/[lng]/sales/(sales)/tech-vendors/page.tsx28
3 files changed, 78 insertions, 17 deletions
diff --git a/app/[lng]/sales/(sales)/tech-contact-possible-items/page.tsx b/app/[lng]/sales/(sales)/tech-contact-possible-items/page.tsx
new file mode 100644
index 00000000..5bc36790
--- /dev/null
+++ b/app/[lng]/sales/(sales)/tech-contact-possible-items/page.tsx
@@ -0,0 +1,56 @@
+import { Suspense } from "react"
+import { SearchParams } from "@/types/table"
+import { Shell } from "@/components/shell"
+import { ContactPossibleItemsTable } from "@/lib/contact-possible-items/table/contact-possible-items-table"
+import { getContactPossibleItems } from "@/lib/contact-possible-items/service"
+import { searchParamsCache } from "@/lib/contact-possible-items/validations"
+import { DataTableSkeleton } from "@/components/data-table/data-table-skeleton"
+
+
+interface ContactPossibleItemsPageProps {
+ searchParams: Promise<SearchParams>
+}
+
+export default async function ContactPossibleItemsPage({
+ searchParams,
+}: ContactPossibleItemsPageProps) {
+ const resolvedSearchParams = await searchParams
+ const search = searchParamsCache.parse(resolvedSearchParams)
+
+ const contactPossibleItemsPromise = getContactPossibleItems(search)
+
+ return (
+ <Shell className="gap-2">
+ <div className="flex items-center justify-between space-y-2">
+ <div className="flex items-center justify-between space-y-2">
+ <div>
+ <h2 className="text-2xl font-bold tracking-tight">
+ 담당자별 자재 관리
+ </h2>
+ {/* <p className="text-muted-foreground">
+ 기술영업 담당자별 자재를 관리합니다.
+ </p> */}
+ </div>
+ </div>
+ </div>
+
+
+ <Suspense
+ fallback={
+ <DataTableSkeleton
+ columnCount={12}
+ searchableColumnCount={2}
+ filterableColumnCount={3}
+ cellWidths={["10rem", "10rem", "12rem", "8rem", "8rem"]}
+ shrinkZero
+ />
+ }
+ >
+ <ContactPossibleItemsTable
+ contactPossibleItemsPromise={contactPossibleItemsPromise}
+ />
+ </Suspense>
+
+ </Shell>
+ )
+} \ No newline at end of file
diff --git a/app/[lng]/sales/(sales)/tech-project-avl/page.tsx b/app/[lng]/sales/(sales)/tech-project-avl/page.tsx
index 3a86f840..4ce018cd 100644
--- a/app/[lng]/sales/(sales)/tech-project-avl/page.tsx
+++ b/app/[lng]/sales/(sales)/tech-project-avl/page.tsx
@@ -11,7 +11,7 @@ import { getAcceptedTechSalesVendorQuotations } from "@/lib/techsales-rfq/servic
import { getValidFilters } from "@/lib/data-table"
import { DataTableSkeleton } from "@/components/data-table/data-table-skeleton"
import { Ellipsis } from "lucide-react"
-
+import { InformationButton } from "@/components/information/information-button"
export interface PageProps {
params: Promise<{ lng: string }>
searchParams: Promise<SearchParams>
@@ -45,9 +45,12 @@ export default async function AcceptedQuotationsPage({
<div className="flex items-center justify-between space-y-2">
<div className="flex items-center justify-between space-y-2">
<div>
- <h2 className="text-2xl font-bold tracking-tight">
- 승인된 견적서(해양TOP,HULL)
- </h2>
+ <div className="flex items-center gap-2">
+ <h2 className="text-2xl font-bold tracking-tight">
+ 견적 Result 전송
+ </h2>
+ <InformationButton pagePath="evcp/tech-project-avl" />
+ </div>
{/* <p className="text-muted-foreground">
기술영업 승인 견적서에 대한 요약 정보를 확인하고{" "}
<span className="inline-flex items-center whitespace-nowrap">
diff --git a/app/[lng]/sales/(sales)/tech-vendors/page.tsx b/app/[lng]/sales/(sales)/tech-vendors/page.tsx
index 8f542f59..e49ba79e 100644
--- a/app/[lng]/sales/(sales)/tech-vendors/page.tsx
+++ b/app/[lng]/sales/(sales)/tech-vendors/page.tsx
@@ -8,7 +8,6 @@ import { Shell } from "@/components/shell"
import { searchParamsCache } from "@/lib/tech-vendors/validations"
import { getTechVendors, getTechVendorStatusCounts } from "@/lib/tech-vendors/service"
import { TechVendorsTable } from "@/lib/tech-vendors/table/tech-vendors-table"
-import { TechVendorContainer } from "@/components/tech-vendors/tech-vendor-container"
interface IndexPageProps {
searchParams: Promise<SearchParams>
@@ -20,14 +19,6 @@ export default async function IndexPage(props: IndexPageProps) {
const validFilters = getValidFilters(search.filters)
- // 벤더 타입 정의
- const vendorTypes = [
- { id: "all", name: "전체", value: "" },
- { id: "ship", name: "조선", value: "조선" },
- { id: "top", name: "해양TOP", value: "해양TOP" },
- { id: "hull", name: "해양HULL", value: "해양HULL" },
- ]
-
const promises = Promise.all([
getTechVendors({
...search,
@@ -38,6 +29,19 @@ export default async function IndexPage(props: IndexPageProps) {
return (
<Shell className="gap-4">
+ <div className="flex items-center justify-between">
+ {/* 왼쪽: 타이틀 & 설명 */}
+ <div>
+ <div className="flex items-center gap-2">
+ <h2 className="text-2xl font-bold tracking-tight">기술영업 협력업체 관리</h2>
+ {/* InformationButton은 필요시 추가 */}
+ {/* <InformationButton pagePath="evcp/tech-vendors" /> */}
+ </div>
+ {/* <p className="text-muted-foreground">
+ 기술영업 벤더에 대한 요약 정보를 확인하고 관리할 수 있습니다.
+ </p> */}
+ </div>
+ </div>
<React.Suspense
fallback={
<DataTableSkeleton
@@ -49,10 +53,8 @@ export default async function IndexPage(props: IndexPageProps) {
/>
}
>
- <TechVendorContainer vendorTypes={vendorTypes}>
- <TechVendorsTable promises={promises} />
- </TechVendorContainer>
+ <TechVendorsTable promises={promises} />
</React.Suspense>
</Shell>
)
-} \ No newline at end of file
+} \ No newline at end of file